Generally, at a transmitting end of a 3GPP LTE system, a data coding process involves turbo coding HARQ data to be transmitted and performing data rate matching by a rate matcher to match the length of turbo coded data with the length of data required for wireless transmission. At a receiving end, a data decoding process involves executing data derate matching by a derate matcher to match the length of received data in wireless transmission with the length of input data to a turbo decoder.
FIG. 1 shows the configuration of a rate matcher for turbo coded data in a 3GPP LTE system of related art.
As shown in FIG. 1, a turbo coding rate matcher 100 performs a function of matching the number of input bits to a channel encoder with a total number of bits mapped to a physical channel (e.g., PUSCH or PDSCH). The function of the rate matcher 100 is controlled by a redundancy version (rv) parameter of HARQ, where rv has one of 0, 1, 2, and 3.
Referring to FIG. 1, the rate matcher 100 for turbo coded data includes subblock interleavers 102, 104, and 106 for three information bit streams d(0)k, d(1)k, and d(2)k, a buffer unit 108, and a bit selection unit 110.
Input bit streams d(i)k are passed to the subblock interleavers 102, 104, and 106 to create v(i)k (where k=0, 1, . . . , kΠ), and interleaved data streams are temporarily stored in the buffer unit 108 and then certain bits are selected depending on the size of output bits by the bit selection unit 110 and output as a turbo coded bit stream ek (where i=0, 1, 2).
Hereinafter, the operation of each component will be described in more detail.
First, the operation of the subblock interleavers 102, 104, and 106 will be discussed in detail.                Input bits of the subblock interleavers 102, 104, and 106: d(i)0, d(i)1, d(i)2, . . . , d(i)D−1 where D is the number of input bits and i=0, 1, and 2.        Output bits of the subblock interleavers: v(i)0, v(i)1, v(i)2, . . . v(i)KΠ−1, where KΠ will be defined below and i=0, 1, and 2.        Output bit sequences of the subblock interleavers are derived as follows.        
(1) Number of matrix columns to be assigned: Csubblock=32, and the number of matrix columns: 0, 1, 2, . . . , Csubblock-1 from left to right.
(2) Calculation of minimum integer Rsubblock satisfying the following condition: D≦(Rsubblock×Csubblock), and rectangular matrix row number: 0, 1, 2, . . . , Rsubblock-1 from top to bottom.
(3) If (Rsubblock×Csubblock)>D, then dummy bits, ND=(Rsubblock×Csubblock−D), are added. That is, Yk=<NULL>(where k=0, 1, . . . , ND−1) and the input bit sequence is written in the (Rsubblock×Csubblock) matrix as in the following Eq. (1).
In other words, yND+k=d(i)k (where k=0, 1, . . . , D−1). At this point, bit y0 in 0th row and 0th column starts and then it continues row by row.
          ⁢            [              Equation        ⁢                                  ⁢        1            ]        ⁢                  [                                        y            0                                                y            1                                                y            2                                    …                                      y                          Csubblock              -              1                                                                        y            Csubblock                                                y                          Csubblock              +              1                                                            y                          Csubblock              +              2                                                …                                      y                                          2                ⁢                Csubblock                            -              1                                                            ⋮                          ⋮                          ⋮                          ⋮                          ⋮                                                  y                                                                                                      (                                              Rsubblock                        -                        1                                            )                                        ×                                                                                                Csubblock                                                                                          y                                                                                                      (                                              Rsubblock                        -                        1                                            )                                        ×                                                                                                                    Csubblock                    +                    1                                                                                                            y                                                                                                      (                                              Rsubblock                        -                        1                                            )                                        ×                                                                                                                    Csubblock                    +                    2                                                                                                …                                      y                                                                                (                                          Rsubblock                      ×                                                                                                                                                              Csubblock                      -                      1                                        )                                                                                            ]  
In case of d(0)k and d(1)k:
(4) Based on <P(j)>jε{0, 1, . . . , Csubblock−1} in Table 1 below, the inter-column permutation of the matrix is carried out.
Here, P(j) represents the original column position of a j-th permutated column. After column permutation, inter-column permutated (Rsubblock×Csubblock) matrix is as follows:
          ⁢            [              Equation        ⁢                                  ⁢        2            ]        ⁢                  [                                        y                          P              ⁡                              (                0                )                                                                          y                          P              ⁡                              (                1                )                                                                          y                          P              ⁡                              (                2                )                                                              …                                      y                          P              ⁢                                                          ⁢                              (                                  Csubblock                  -                  1                                )                                                                                      y                                          P                ⁡                                  (                  0                  )                                            +              Csubblock                                                            y                                          P                ⁡                                  (                  1                  )                                            +              Csubblock                                                            y                                          P                ⁡                                  (                  2                  )                                            +              Csubblock                                                …                                      y                                                                                                      P                      ⁡                                              (                                                  Csubblock                          -                          1                                                )                                                              +                                                                                                Csubblock                                                                                          ⋮                          ⋮                          ⋮                          ⋮                          ⋮                                                  y                                                                                                                                                                                    P                            ⁡                                                          (                              0                              )                                                                                +                                                                                                                                                                                          (                                                          Rsubblock                              -                              1                                                        )                                                    ×                                                                                                                                                                  Csubblock                                                                                          y                                                                                                                                                                                    P                            ⁡                                                          (                              1                              )                                                                                +                                                                                                                                                                                          (                                                          Rsubblock                              -                              1                                                        )                                                    ×                                                                                                                                                                  Csubblock                                                                                          y                                                                                                                                                                                    P                            ⁡                                                          (                              2                              )                                                                                +                                                                                                                                                                                          (                                                          Rsubblock                              -                              1                                                        )                                                    ×                                                                                                                                                                  Csubblock                                                                              …                                      y                                                                                                                                                                                    P                            ⁡                                                          (                                                              Csubblock                                -                                1                                                            )                                                                                +                                                                                                                                                                                          (                                                          Rsubblock                              -                              1                                                        )                                                    ×                                                                                                                                                                  Csubblock                                                                          ]  
(5) Outputs of the subblock interleavers are created by reading the inter-column permutated (Rsubblock×Csubblock) matrix column by column. Bits after the subblock interleaving are v(i)0, v(i)1, v(i)2, . . . , v(i)KΠ−1. Here, v(i)0 is yp(0), v(i)1 is yp(0)+Csubblock . . . , and KΠ=(Rsubblock×Csubblock).
In case of d(2)k:
(6) Outputs of the subblock interleavers are v(i)0, v(i)1, v(i)2, . . . , v(i)KΠ−1. Here, V(2)k=yπ(k), and
      π    ⁡          (      k      )        =            [                        p          ⁡                      [                          k                              R                subblock                                      ]                          +                              C            subblock                    ×                      (                          k              ⁢                                                          ⁢              mod              ⁢                                                          ⁢                              R                subblock                                      )                          +        1            ]        ⁢    mod    ⁢                  ⁢                  K        ∏            .      
TABLE 1Inter-column permutation pattern of the subblock interleaversNumber of columnsInter-column permutation patternCsubblock<P(0), P(1), . . . , P(Csubblock − 1)>32<0, 16, 8, 24, 4, 20, 12, 28, 2,18, 10, 26, 6, 22, 14, 30, 1, 17,9, 25, 5, 21, 13, 29, 3, 19, 11,27, 7, 23, 15, 31>
Next, the operation of the buffer unit 108 and the bit selection unit 110 will be described in detail.                Generation of circular buffer having the length of KW=3KΠ:wk=vk(0)fork=0, . . . ,KΠ−1 wKΠ+2k=vk(1)fork=0, . . . ,KΠ−1 wKΠ+2k+1=vk(2)fork=0, . . . ,KΠ−1         Rate matching output sequence length: E        Soft buffer size: Ncb (e.g., Ncb=Kw)        Rate matching output bit sequence: ek (where k=0, 1, . . . , E−1)        HARQ redundancy version number: rvidx (where rvidx=0, 1, 2 or 3)        
A start position K0 of rate matcher bit selection is calculated as the following Equation 3:
                              k          0                =                              R            subblock                    ·                      [                                          2                ·                                  [                                                            N                      Cb                                                              8                      ⁢                                              R                        subblock                                                                              ]                                ·                                  rv                  idx                                            +              2                        ]                                              [                  Equation          ⁢                                          ⁢          3                ]            
where Rsubblock is the number of rows.
In this manner, the transmission of output data from the rate matcher 100 for the selected bit data is made as the following Equation 4:
                              Setk          =                                    0              ⁢                                                          ⁢              and              ⁢                                                          ⁢              j                        =            0                          ⁢                                  ⁢                  while          ⁢                                          ⁢                      {                          k              <              E                        }                          ⁢                                  ⁢                              ifw                                          (                                                      k                    ⁢                                                                                  ⁢                    0                                    +                  j                                )                            ⁢                                                          ⁢              mod              ⁢                                                          ⁢              Ncb                                ≠                      〈            NULL            〉                          ⁢                                  ⁢                              e            k                    =                      w                          j              ⁢                                                          ⁢              mod              ⁢                                                          ⁢              Ncb                                      ⁢                                  ⁢                  k          =                      k            +            1                          ⁢                                  ⁢        endif        ⁢                                  ⁢                  j          =                      j            +            1                          ⁢                                  ⁢        endwhile                            [                  Equation          ⁢                                          ⁢          4                ]            
As mentioned above, in the conventional rate matching process of the turbo coded data that supports HARQ, the dummy bits for an input data length D needs to be considered and the start position K0 of the rate matcher for an HARQ redundancy version number rv needs also to be considered. Also, the transmission positions of a systematic data sequence S and parity data sequences P1 and P2 need to be considered.
However, the factors, such as the dummy bits and the redundancy version number rv start position K0 considered in the conventional rate matching process of the turbo coded data that supports HARQ, also need to be taken into consideration in the derate matcher of the decoder of the receiving end. Therefore, the operation of the derate matcher is complicated, thus making the hardware configuration of the derate matcher complicated.